package com.hy.study.utils;

import com.google.common.base.Splitter;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.collections.Transformer;
import org.apache.commons.lang3.StringUtils;
import org.junit.Test;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;

/**
 * String 与集合之间的转换
 *
 * @author huyong
 * @date 2024 年 01 月 11 日 16:54: 35
 */
public class String2Collection {

    private final static String str = "123,123,245";


    @Test
    public void test1() {
        // 方式一 但返回的集合是不能进行增删操作的
        List<String> list = Arrays.asList(str.split(","));

        // 方式二 这里的resultList 可以修改新增删除等操作
        List<String> resultList = new ArrayList<>();
        Collections.addAll(resultList, str.split(","));

        // 方式三 将值切割切转换成int 的list
        List<Integer> collect = Stream.of(str.split(",")).map(String::trim).filter(StringUtils::isNoneBlank).map(Integer::valueOf).collect(Collectors.toList());

        // 方式四 guava
        List<String> strings = Splitter.on(",").splitToList(str);
        System.out.println(strings);

        List<Integer> result = new ArrayList<>();

    }

    @Test
    public void test(){
        String str="测试文档,舌侧;cdff";
        List<String> strings = Splitter.on("[;|,]").splitToList(str);
        System.out.println(strings.size());
    }

}
